package com.example.yian.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

@TableName("text_search_requests") // 指定表名
@Data // 自动生成getter、setter、equals、hashCode、toString方法
@AllArgsConstructor // 全参数构造器
@NoArgsConstructor // 无参构造器
public class TextSearchRequest {

    @TableId(value = "id", type = IdType.AUTO) // 自增主键
    private Long id; // 请求记录唯一标识

    private String textMessage; // 搜索内容
    public String getTextMessage() {
        return textMessage;
    }

    @TableField("re_chat")
    private Boolean reChat; // 是否多轮对话，默认FALSE

    @TableField("stream")
    private Boolean stream; // 是否启用流对话，默认FALSE

    @TableField("user_id")
    private Long userId;

    @TableField("is_specificationSearch")
    private Boolean isSpecificationSearch;

    public void setIsSpecificationSearch(Boolean isSpecificationSearch) {
        this.isSpecificationSearch = isSpecificationSearch;
    }

    @TableField(value = "created_at", fill = FieldFill.INSERT) // 插入时自动填充
    private LocalDateTime createdAt; // 记录创建时间，默认CURRENT_TIMESTAMP

    @TableField(value = "updated_at", fill = FieldFill.INSERT_UPDATE) // 插入和更新时自动填充
    private LocalDateTime updatedAt; // 记录更新时间，默认CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

    // 注意：外键关系在Java实体类中通常不直接体现为属性，而是在进行关联查询时通过MyBatis Plus的关联查询功能来处理。

    // 添加 getter 方法以允许外部访问
    public Long getId() {
        return id;
    }

    // 可选: 添加 setter 方法以允许外部修改
    public void setId(Long id) {
        this.id = id;
    }
}
